package producto;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.RowEditEvent;

import clases.Producto;
import ejb.producto.EjbProductoRemote;



@ManagedBean
@SessionScoped
public class MBProducto implements Serializable{

	@EJB(name="EJBProducto", mappedName="EJBProducto")
	EjbProductoRemote ejbProducto;

	private List<Producto> listaProductos;
	private Producto producto;
	
	@PostConstruct
 	public void init() {
		listaProductos = ejbProducto.listarProductos();
		producto = new Producto();
	}
	
	public void agregarProducto(){
		ejbProducto.agregarProducto(producto);
		init();
	}
	
	public void eliminarProducto(Producto producto) {
		String productoAviso = producto.getId();
		ejbProducto.eliminarProducto(productoAviso);
		FacesMessage msg = new FacesMessage("Producto " + productoAviso + " editado exitosamente");
		init();
	}

	public List<Producto> getListaProductos() {
		return listaProductos;
	}

	public void setListaProductos(List<Producto> listaProductos) {
		this.listaProductos = listaProductos;
	}
	
	public Producto getProducto() {
		return producto;
	}

	public void setProducto(Producto producto) {
		this.producto = producto;
	}
	
	public void editarProducto(RowEditEvent event) {  
		ejbProducto.modificarProducto((Producto) event.getObject());
        FacesMessage msg = new FacesMessage("Producto " + ((Producto) event.getObject()).getNombre() + " editado exitosamente");  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }  
      
    public void mensajeNoEditar(RowEditEvent event) {  
        FacesMessage msg = new FacesMessage("Edicion cancelada");  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }  
	
	public MBProducto(){
		
	}
	
}
